home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
91xx
/
9109a.d64
/
demo 2.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
3KB
|
62 lines
10 SYS36864
20 .OPT OO
30 *= $C000
40 ; DIESES PROGRAMM DEFINIERT ZWEI
50 ; NEUE BASICBEFEHLE
60 ; - BEEP ERZEUGT EINEN TON
70 ; - ERASE X LOESCHT BILDSCH. ZEILE X
80 ; NIKOLAUS HEUSLER, MUENCHEN, 3.91
100 IBAS =776;VEKTOR FUER BASICBEFEHL
110 INTER =$A7AE;INTERPRETERSCHLEIFE
120 OLDBAS =$A7E4;ALTEN BEFEHL AUSFUEHREN
130 SID =54272;SOUNDCHIP BASISADRESSE
140 CHRGET =115;NAECHSTES ZEICHEN HOLEN
150 ILLQUAN =$B248;ILLEGAL QUANTITY ERROR
160 GETX =$B79E;HOLT BYTE-WERT NACH X
170 CLRX =59903;LOESCHT BILDSCHIRMZEILE X
180 OK =$E18D;OK AUSGEBEN
190 TMP =2;ZWISCHENSPEICHER
200 PTR =122;ZEIGER AUF BASICBEFEHL
300 ; --- NEUE BEFEHLE DEFINIEREN
310 LDA #<NEUBEF:LDY #>NEUBEF;ZEIGER AUF NEUE ROUTINE
320 STA IBAS:STY IBAS+1;VEKTOR VERBIEGEN
330 JMP OK;OK AUSGEBEN
400 ; --- NEUE BEFEHLS-ROUTINE
410 NEUBEF LDA PTR:LDY PTR+1:STA TMP:STY TMP+1;BASIC-POINTER RETTEN:LDX #0
420 ; --- TEST, OB BEFEHL NR. 1
430 TEST1 JSR CHRGET;NAECHSTES ZEICHEN HOLEN:CMP TEXT1,X;BEFEHLSWORT PRUEFEN
440 BNE NEIN1;WENN NICHT, DANN BEFEHL 2 PRUEFEN
450 INX:CPX #4;LAENGE DES BEFEHLSWORTES:BNE TEST1;NICHT ERREICHT, WEITER TESTEN
460 JSR PIEPS;BEFEHL AUSFUEHREN
470 ; --- NEUEN BEFEHL FERTIG AUSGEFUEHRT
480 FERTIG JMP INTER;WEITER MIT INTERPRETERSCHLEIFE
500 ; --- WAR NICHT DER ERSTE BEFEHL
510 NEIN1 LDA TMP:LDY TMP+1:STA PTR:STY PTR+1;POINTER ZURUECKHOLEN:LDX #0
520 ; --- TEST, OB BEFEHL NR. 2
530 TEST2 JSR CHRGET;NAECHSTES ZEICHEN HOLEN:CMP TEXT2,X;BEFEHLSWORT PRUEFEN
540 BNE NEIN2;WENN NICHT, DANN FERTIG
550 INX:CPX #5;LAENGE DES BEFEHLSWORTES:BNE TEST2;NICHT ERREICHT, WEITER TESTEN
560 JSR LOESCH;BEFEHL AUSFUEHREN
570 JMP FERTIG;UND WEITER WIE OBEN
600 ; --- WAR NICHT DER ZWEITE BEFEHL
610 NEIN2 LDA TMP:LDY TMP+1:STA PTR:STY PTR+1;POINTER ZURUECKHOLEN
620 JMP OLDBAS;ALTEN BASIC-BEFEHL AUSFUEHREN
700 ; --- ROUTINEN DER NEUEN BEFEHLE
710 ; --- BEFEHL 1 - TON AUSGEBEN
720 PIEPS JSR CHRGET;NAECHSTES ZEICHEN:LDA #0:LDX #24;SID-REGISTER LOESCHEN
730 CLRSID STA SID,X:DEX:BPL CLRSID;NULL IN ALLE REGISTER SCHREIBEN
740 LDA #15:STA SID+24;LAUTSTAERKE AUF 15
750 LDA #100:STA SID+1;TONHOEHE:LDA #240:STA SID+6;WELLENFORM
760 LDA #17:STA SID+4;TON EIN
770 LDX #0:LDY #0;WARTESCHLEIFE
780 WAIT NOP:DEX:BNE WAIT:DEY:BNE WAIT;WARTET CA. 1/2 SEKUNDE
790 LDA #16:STA SID+4;TON AUS:RTS;FERTIG
800 ; BEFEHL 2 - BILDSCHIRMZEILE LOESCHEN
810 LOESCH JSR CHRGET;NAECHSTES ZEICHEN:JSR GETX;NUMMER DER ZEILE HOLEN
820 CPX #25;GROESSER ALS 24:BCC STIMMT;KLEINER, DANN OK
830 JMP ILLQUAN;SONST FEHLERMELDUNG AUSGEBEN
840 STIMMT JSR CLRX;BILDSCHIRMZEILE NR. X LOESCHEN:RTS;FERTIG
900 ; --- BEFEHLS-TEXTE
910 TEXT1 .ASC "BEEP";TEXT IM ASCII-CODE
920 TEXT2 .ASC "ERASE";TEXT IM ASCII-CODE